home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 5 / Gekikoh Dennoh Club Vol. 5 (Japan).7z / Gekikoh Dennoh Club Vol. 5 (Japan) (Track 01).bin / internet / webx / webxp040.lzh / Source / put.s < prev    next >
Text File  |  1998-07-25  |  20KB  |  943 lines

  1. *    put.s
  2. *        éPò╢ÄÜò\Īâïü[â`âô
  3. *
  4. *                We'll Never Stop Programming This Way.
  5.  
  6.     .xdef    put_6x12_jt,put_12x12_jt
  7.     .xdef    put_8x16_jt,put_16x16_jt
  8.  
  9. CRTC_R23    equ    $e8_002e
  10. NEXT_LINE    equ    128    * éPâëâCâôéáé╜éΦé╠âoâCâgÉö
  11.  
  12.     .text
  13.     .even
  14.  
  15.         * éPò╢ÄÜò\Īâïü[â`âô
  16.         * in  : a1.l = ò╢ÄÜâtâHâôâgé╠âAâhâîâX
  17.         *     a2.l = ò\Īé╖éΘ TEXTVRAM é╠âAâhâîâX
  18.         * out : é╚é╡
  19.         * reg : d0-d3/a0-a1 öjë≤
  20.         *    é╗éΩê╚èOé═ò█æ╢
  21.  
  22. put_6x12_jt:
  23. q    =    put_6x12_jt
  24.     .dc.w    put_6x12_0-q
  25.     .dc.w    put_6x12_1-q
  26.     .dc.w    put_6x12_2-q
  27.     .dc.w    put_6x12_3-q
  28.     .dc.w    put_6x12_4-q
  29.     .dc.w    put_6x12_5-q
  30.     .dc.w    put_6x12_6-q
  31.     .dc.w    put_6x12_7-q
  32.     .dc.w    put_6x12_8-q
  33.     .dc.w    put_6x12_9-q
  34.     .dc.w    put_6x12_10-q
  35.     .dc.w    put_6x12_11-q
  36.     .dc.w    put_6x12_12-q
  37.     .dc.w    put_6x12_13-q
  38.     .dc.w    put_6x12_14-q
  39.     .dc.w    put_6x12_15-q
  40.  
  41.  
  42. *    üíüíüíüíüíüíüáüá_üáüáüáüáüáüáüáüá
  43. put_6x12_0:
  44.     move.w    #%00000011_11111111,CRTC_R23
  45.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11    * HAS.X é╠ègÆúï^Äùû╜ù▀
  46.     move.b    (a1)+,NEXT_LINE*%A(a2)
  47.     .endm
  48.     rts
  49.  
  50. *    üáüíüíüíüíüíüíüá_üáüáüáüáüáüáüáüá
  51. put_6x12_1:
  52.     move.w    #%10000001_11111111,CRTC_R23
  53.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11
  54.     move.b    (a1)+,d0
  55.     ror.b    d0
  56.     move.b    d0,NEXT_LINE*%A(a2)
  57.     .endm
  58.     rts
  59.  
  60. *    üáüáüíüíüíüíüíüí_üáüáüáüáüáüáüáüá
  61. put_6x12_2:
  62.     move.w    #%11000000_11111111,CRTC_R23
  63.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11
  64.     move.b    (a1)+,d0
  65.     ror.b    #2,d0
  66.     move.b    d0,NEXT_LINE*%A(a2)
  67.     .endm
  68.     rts
  69.  
  70. put_6x12_3:
  71. *    üáüáüáüíüíüíüíüí_üíüáüáüáüáüáüáüá
  72.     move.w    #%11100000_01111111,CRTC_R23
  73.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11
  74.     moveq.l    #0,d0
  75.     move.b    (a1)+,d0
  76.     rol.w    #8-3,d0
  77.     move.w    d0,NEXT_LINE*%A(a2)
  78.     .endm
  79.     rts
  80.  
  81. put_6x12_4:
  82. *    üáüáüáüáüíüíüíüí_üíüíüáüáüáüáüáüá
  83.     move.w    #%11110000_00111111,CRTC_R23
  84.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11
  85.     moveq.l    #0,d0
  86.     move.b    (a1)+,d0
  87.     rol.w    #8-4,d0
  88.     move.w    d0,NEXT_LINE*%A(a2)
  89.     .endm
  90.     rts
  91.  
  92. put_6x12_5:
  93. *    üáüáüáüáüáüíüíüí_üíüíüíüáüáüáüáüá
  94.     move.w    #%11111000_00011111,CRTC_R23
  95.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11
  96.     moveq.l    #0,d0
  97.     move.b    (a1)+,d0
  98.     rol.w    #8-5,d0
  99.     move.w    d0,NEXT_LINE*%A(a2)
  100.     .endm
  101.     rts
  102.  
  103. put_6x12_6:
  104. *    üáüáüáüáüáüáüíüí_üíüíüíüíüáüáüáüá
  105.     move.w    #%11111100_00001111,CRTC_R23
  106.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11
  107.     moveq.l    #0,d0
  108.     move.b    (a1)+,d0
  109.     rol.w    #8-6,d0
  110.     move.w    d0,NEXT_LINE*%A(a2)
  111.     .endm
  112.     rts
  113.  
  114. put_6x12_7:
  115. *    üáüáüáüáüáüáüáüí_üíüíüíüíüíüáüáüá
  116.     move.w    #%11111110_00000111,CRTC_R23
  117.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11
  118.     moveq.l    #0,d0
  119.     move.b    (a1)+,d0
  120.     rol.w    d0
  121.     move.w    d0,NEXT_LINE*%A(a2)
  122.     .endm
  123.     rts
  124.  
  125. put_6x12_8:
  126. *    üáüáüáüáüáüáüáüá_üíüíüíüíüíüíüáüá
  127.     move.w    #%11111111_00000011,CRTC_R23
  128.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11
  129.     move.b    (a1)+,NEXT_LINE*%A+1(a2)
  130.     .endm
  131.     rts
  132.  
  133. put_6x12_9:
  134. *    üáüáüáüáüáüáüáüá_üáüíüíüíüíüíüíüá
  135.     move.w    #%11111111_10000001,CRTC_R23
  136.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11
  137.     move.b    (a1)+,d0
  138.     ror.b    d0
  139.     move.b    d0,NEXT_LINE*%A+1(a2)
  140.     .endm
  141.     rts
  142.  
  143. put_6x12_10:
  144. *    üáüáüáüáüáüáüáüá_üáüáüíüíüíüíüíüí
  145.     move.w    #%11111111_11000000,CRTC_R23
  146.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11
  147.     move.b    (a1)+,d0
  148.     ror.b    #2,d0
  149.     move.b    d0,NEXT_LINE*%A+1(a2)
  150.     .endm
  151.     rts
  152.  
  153. put_6x12_11:
  154. *    üáüáüáüáüáüáüáüá_üáüáüáüíüíüíüíüí_üíüáüáüáüáüáüáüá
  155.     lea.l    CRTC_R23,a0
  156.     move.w    #%11111111_11100000,d2
  157.     move.w    #%01111111_11111111,d3
  158.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11
  159.     moveq.l    #0,d0
  160.     move.b    (a1)+,d0
  161.     ror.w    #11-8,d0
  162.     move.w    d2,(a0)
  163.     move.w    d0,NEXT_LINE*%A(a2)
  164.     move.w    d3,(a0)
  165.     move.w    d0,NEXT_LINE*%A+2(a2)
  166.     .endm
  167.     rts
  168.  
  169. put_6x12_12:
  170. *    üáüáüáüáüáüáüáüá_üáüáüáüáüíüíüíüí_üíüíüáüáüáüáüáüá
  171.     lea.l    CRTC_R23,a0
  172.     move.w    #%11111111_11110000,d2
  173.     move.w    #%00111111_11111111,d3
  174.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11
  175.     moveq.l    #0,d0
  176.     move.b    (a1)+,d0
  177.     ror.w    #12-8,d0
  178.     move.w    d2,(a0)
  179.     move.w    d0,NEXT_LINE*%A(a2)
  180.     move.w    d3,(a0)
  181.     move.w    d0,NEXT_LINE*%A+2(a2)
  182.     .endm
  183.     rts
  184.  
  185. put_6x12_13:
  186. *    üáüáüáüáüáüáüáüá_üáüáüáüáüáüíüíüí_üíüíüíüáüáüáüáüá
  187.     lea.l    CRTC_R23,a0
  188.     move.w    #%11111111_11111000,d2
  189.     move.w    #%00011111_11111111,d3
  190.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11
  191.     moveq.l    #0,d0
  192.     move.b    (a1)+,d0
  193.     ror.w    #13-8,d0
  194.     move.w    d2,(a0)
  195.     move.w    d0,NEXT_LINE*%A(a2)
  196.     move.w    d3,(a0)
  197.     move.w    d0,NEXT_LINE*%A+2(a2)
  198.     .endm
  199.     rts
  200.  
  201. put_6x12_14:
  202. *    üáüáüáüáüáüáüáüá_üáüáüáüáüáüáüíüí_üíüíüíüíüáüáüáüá
  203.     lea.l    CRTC_R23,a0
  204.     move.w    #%11111111_11111100,d2
  205.     move.w    #%00001111_11111111,d3
  206.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11
  207.     moveq.l    #0,d0
  208.     move.b    (a1)+,d0
  209.     ror.w    #14-8,d0
  210.     move.w    d2,(a0)
  211.     move.w    d0,NEXT_LINE*%A(a2)
  212.     move.w    d3,(a0)
  213.     move.w    d0,NEXT_LINE*%A+2(a2)
  214.     .endm
  215.     rts
  216.  
  217. put_6x12_15:
  218. *    üáüáüáüáüáüáüáüá_üáüáüáüáüáüáüáüí_üíüíüíüíüíüáüáüá
  219.     lea.l    CRTC_R23,a0
  220.     move.w    #%11111111_11111110,d2
  221.     move.w    #%00000111_11111111,d3
  222.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11
  223.     moveq.l    #0,d0
  224.     move.b    (a1)+,d0
  225.     ror.w    #15-8,d0
  226.     move.w    d2,(a0)
  227.     move.w    d0,NEXT_LINE*%A(a2)
  228.     move.w    d3,(a0)
  229.     move.w    d0,NEXT_LINE*%A+2(a2)
  230.     .endm
  231.     rts
  232.  
  233.  
  234. ****************************************************************
  235. put_12x12_jt:
  236. q    =    put_12x12_jt
  237.     .dc.w    put_12x12_0-q
  238.     .dc.w    put_12x12_1-q
  239.     .dc.w    put_12x12_2-q
  240.     .dc.w    put_12x12_3-q
  241.     .dc.w    put_12x12_4-q
  242.     .dc.w    put_12x12_5-q
  243.     .dc.w    put_12x12_6-q
  244.     .dc.w    put_12x12_7-q
  245.     .dc.w    put_12x12_8-q
  246.     .dc.w    put_12x12_9-q
  247.     .dc.w    put_12x12_10-q
  248.     .dc.w    put_12x12_11-q
  249.     .dc.w    put_12x12_12-q
  250.     .dc.w    put_12x12_13-q
  251.     .dc.w    put_12x12_14-q
  252.     .dc.w    put_12x12_15-q
  253.  
  254.  
  255. put_12x12_0:
  256. *    üíüíüíüíüíüíüíüí_üíüíüíüíüáüáüáüá
  257.     move.w    #%00000000_00001111,CRTC_R23
  258.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11    * HAS.X é╠ègÆúï^Äùû╜ù▀
  259.     move.w    (a1)+,NEXT_LINE*%A(a2)
  260.     .endm
  261.     rts
  262.  
  263. put_12x12_1:
  264. *    üáüíüíüíüíüíüíüí_üíüíüíüíüíüáüáüá
  265.     move.w    #%10000000_00000111,CRTC_R23
  266.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11
  267.     move.w    (a1)+,d0
  268.     ror.w    d0
  269.     move.w    d0,NEXT_LINE*%A(a2)
  270.     .endm
  271.     rts
  272.  
  273. put_12x12_2:
  274. *    üáüáüíüíüíüíüíüí_üíüíüíüíüíüíüáüá
  275.     move.w    #%11000000_00000011,CRTC_R23
  276.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11
  277.     move.w    (a1)+,d0
  278.     ror.w    #2,d0
  279.     move.w    d0,NEXT_LINE*%A(a2)
  280.     .endm
  281.     rts
  282.  
  283. put_12x12_3:
  284. *    üáüáüáüíüíüíüíüí_üíüíüíüíüíüíüíüá
  285.     move.w    #%11100000_00000001,CRTC_R23
  286.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11
  287.     move.w    (a1)+,d0
  288.     ror.w    #3,d0
  289.     move.w    d0,NEXT_LINE*%A(a2)
  290.     .endm
  291.     rts
  292.  
  293. put_12x12_4:
  294. *    üáüáüáüáüíüíüíüí_üíüíüíüíüíüíüíüí
  295.     move.w    #%11110000_00000000,CRTC_R23
  296.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11
  297.     move.w    (a1)+,d0
  298.     ror.w    #4,d0
  299.     move.w    d0,NEXT_LINE*%A(a2)
  300.     .endm
  301.     rts
  302.  
  303. put_12x12_5:
  304. *    üáüáüáüáüáüíüíüí_üíüíüíüíüíüíüíüí_üíüáüáüáüáüáüáüá
  305.     lea.l    CRTC_R23,a0
  306.     move.w    #%11111000_00000000,d2
  307.     move.w    #%01111111_11111111,d3
  308.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11
  309.     move.w    (a1)+,d0
  310.     ror.w    #5,d0
  311.     move.w    d2,(a0)
  312.     move.w    d0,NEXT_LINE*%A(a2)
  313.     move.w    d3,(a0)
  314.     move.w    d0,NEXT_LINE*%A+2(a2)
  315.     .endm
  316.     rts
  317.  
  318. put_12x12_6:
  319. *    üáüáüáüáüáüáüíüí_üíüíüíüíüíüíüíüí_üíüíüáüáüáüáüáüá
  320.     lea.l    CRTC_R23,a0
  321.     move.w    #%11111100_00000000,d2
  322.     move.w    #%00111111_11111111,d3
  323.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11
  324.     move.w    (a1)+,d0
  325.     ror.w    #6,d0
  326.     move.w    d2,(a0)
  327.     move.w    d0,NEXT_LINE*%A(a2)
  328.     move.w    d3,(a0)
  329.     move.w    d0,NEXT_LINE*%A+2(a2)
  330.     .endm
  331.     rts
  332.  
  333. put_12x12_7:
  334. *    üáüáüáüáüáüáüáüí_üíüíüíüíüíüíüíüí_üíüíüíüáüáüáüáüá
  335.     lea.l    CRTC_R23,a0
  336.     move.w    #%11111110_00000000,d2
  337.     move.w    #%00011111_11111111,d3
  338.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11
  339.     move.w    (a1)+,d0
  340.     ror.w    #7,d0
  341.     move.w    d2,(a0)
  342.     move.w    d0,NEXT_LINE*%A(a2)
  343.     move.w    d3,(a0)
  344.     move.w    d0,NEXT_LINE*%A+2(a2)
  345.     .endm
  346.     rts
  347.  
  348. put_12x12_8:
  349. *    üáüáüáüáüáüáüáüáüá_üíüíüíüíüíüíüíüí_üíüíüíüíüáüáüáüá
  350.     lea.l    CRTC_R23,a0
  351.     move.w    #%11111111_00000000,d2
  352.     move.w    #%00001111_11111111,d3
  353.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11
  354.     move.w    d2,(a0)
  355.     move.b    (a1)+,NEXT_LINE*%A+1(a2)
  356.     move.w    d3,(a0)
  357.     move.b    (a1)+,NEXT_LINE*%A+2(a2)
  358.     .endm
  359.     rts
  360.  
  361. put_12x12_9:
  362. *    üáüáüáüáüáüáüáüáüá_üáüíüíüíüíüíüíüí_üíüíüíüíüíüáüáüá
  363.     lea.l    CRTC_R23,a0
  364.     move.w    #%11111111_10000000,d2
  365.     move.w    #%00000111_11111111,d3
  366.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11
  367.     move.w    (a1)+,d0
  368.     rol.w    #16-9,d0
  369.     move.w    d2,(a0)
  370.     move.w    d0,NEXT_LINE*%A(a2)
  371.     move.w    d3,(a0)
  372.     move.w    d0,NEXT_LINE*%A+2(a2)
  373.     .endm
  374.     rts
  375.  
  376. put_12x12_10:
  377. *    üáüáüáüáüáüáüáüáüá_üáüáüíüíüíüíüíüí_üíüíüíüíüíüíüáüá
  378.     lea.l    CRTC_R23,a0
  379.     move.w    #%11111111_11000000,d2
  380.     move.w    #%00000011_11111111,d3
  381.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11
  382.     move.w    (a1)+,d0
  383.     rol.w    #16-10,d0
  384.     move.w    d2,(a0)
  385.     move.w    d0,NEXT_LINE*%A(a2)
  386.     move.w    d3,(a0)
  387.     move.w    d0,NEXT_LINE*%A+2(a2)
  388.     .endm
  389.     rts
  390.  
  391. put_12x12_11:
  392. *    üáüáüáüáüáüáüáüáüá_üáüáüáüíüíüíüíüí_üíüíüíüíüíüíüíüá
  393.     lea.l    CRTC_R23,a0
  394.     move.w    #%11111111_11100000,d2
  395.     move.w    #%00000001_11111111,d3
  396.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11
  397.     move.w    (a1)+,d0
  398.     rol.w    #16-11,d0
  399.     move.w    d2,(a0)
  400.     move.w    d0,NEXT_LINE*%A(a2)
  401.     move.w    d3,(a0)
  402.     move.w    d0,NEXT_LINE*%A+2(a2)
  403.     .endm
  404.     rts
  405.  
  406. put_12x12_12:
  407. *    üáüáüáüáüáüáüáüáüá_üáüáüáüáüíüíüíüí_üíüíüíüíüíüíüíüí
  408.     lea.l    CRTC_R23,a0
  409.     move.w    #%11111111_11110000,d2
  410.     move.w    #%00000000_11111111,d3
  411.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11
  412.     move.w    (a1)+,d0
  413.     rol.w    #16-12,d0
  414.     move.w    d2,(a0)
  415.     move.w    d0,NEXT_LINE*%A(a2)
  416.     move.w    d3,(a0)
  417.     move.w    d0,NEXT_LINE*%A+2(a2)
  418.     .endm
  419.     rts
  420.  
  421. put_12x12_13:
  422. *    üáüáüáüáüáüáüáüáüá_üáüáüáüáüáüíüíüí_üíüíüíüíüíüíüíüí_üíüáüáüáüáüáüáüáüá
  423.     lea.l    CRTC_R23,a0
  424.     move.w    #%11111111_11111000,d2
  425.     move.w    #%00000000_01111111,d3
  426.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11
  427.     move.w    (a1)+,d0
  428.     rol.w    #16-13,d0
  429.     move.w    d2,(a0)
  430.     move.w    d0,NEXT_LINE*%A(a2)
  431.     move.w    d3,(a0)
  432.     move.w    d0,NEXT_LINE*%A+2(a2)
  433.     .endm
  434.     rts
  435.  
  436. put_12x12_14:
  437. *    üáüáüáüáüáüáüáüáüá_üáüáüáüáüáüáüíüí_üíüíüíüíüíüíüíüí_üíüíüáüáüáüáüáüáüá
  438.     lea.l    CRTC_R23,a0
  439.     move.w    #%11111111_11111100,d2
  440.     move.w    #%00000000_00111111,d3
  441.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11
  442.     move.w    (a1)+,d0
  443.     rol.w    #16-14,d0
  444.     move.w    d2,(a0)
  445.     move.w    d0,NEXT_LINE*%A(a2)
  446.     move.w    d3,(a0)
  447.     move.w    d0,NEXT_LINE*%A+2(a2)
  448.     .endm
  449.     rts
  450.  
  451. put_12x12_15:
  452. *    üáüáüáüáüáüáüáüáüá_üáüáüáüáüáüáüáüí_üíüíüíüíüíüíüíüí_üíüíüíüáüáüáüáüáüá
  453.     lea.l    CRTC_R23,a0
  454.     move.w    #%11111111_11111110,d2
  455.     move.w    #%00000000_00011111,d3
  456.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11
  457.     move.w    (a1)+,d0
  458.     rol.w    #16-15,d0
  459.     move.w    d2,(a0)
  460.     move.w    d0,NEXT_LINE*%A(a2)
  461.     move.w    d3,(a0)
  462.     move.w    d0,NEXT_LINE*%A+2(a2)
  463.     .endm
  464.     rts
  465.  
  466.  
  467. ****************************************************************
  468. put_8x16_jt:
  469. q    =    put_8x16_jt
  470.     .dc.w    put_8x16_0-q
  471.     .dc.w    put_8x16_1-q
  472.     .dc.w    put_8x16_2-q
  473.     .dc.w    put_8x16_3-q
  474.     .dc.w    put_8x16_4-q
  475.     .dc.w    put_8x16_5-q
  476.     .dc.w    put_8x16_6-q
  477.     .dc.w    put_8x16_7-q
  478.     .dc.w    put_8x16_8-q
  479.     .dc.w    put_8x16_9-q
  480.     .dc.w    put_8x16_10-q
  481.     .dc.w    put_8x16_11-q
  482.     .dc.w    put_8x16_12-q
  483.     .dc.w    put_8x16_13-q
  484.     .dc.w    put_8x16_14-q
  485.     .dc.w    put_8x16_15-q
  486.  
  487.  
  488. *    üíüíüíüíüíüíüíüí_üáüáüáüáüáüáüáüá
  489. put_8x16_0:
  490.     move.w    #%00000000_11111111,CRTC_R23
  491.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15    * HAS.X é╠ègÆúï^Äùû╜ù▀
  492.     move.b    (a1)+,NEXT_LINE*%A(a2)
  493.     .endm
  494.     rts
  495.  
  496. *    üáüíüíüíüíüíüíüí_üíüáüáüáüáüáüáüá
  497. put_8x16_1:
  498.     move.w    #%10000000_01111111,CRTC_R23
  499.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  500.     moveq.l    #0,d0
  501.     move.b    (a1)+,d0
  502.     lsl.w    #7,d0
  503.     move.w    d0,NEXT_LINE*%A(a2)
  504.     .endm
  505.     rts
  506.  
  507. *    üáüáüíüíüíüíüíüí_üíüíüáüáüáüáüáüá
  508. put_8x16_2:
  509.     move.w    #%11000000_00111111,CRTC_R23
  510.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  511.     moveq.l    #0,d0
  512.     move.b    (a1)+,d0
  513.     lsl.w    #6,d0
  514.     move.w    d0,NEXT_LINE*%A(a2)
  515.     .endm
  516.     rts
  517.  
  518. *    üáüáüáüíüíüíüíüí_üíüíüíüáüáüáüáüá
  519. put_8x16_3:
  520.     move.w    #%11100000_00011111,CRTC_R23
  521.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  522.     moveq.l    #0,d0
  523.     move.b    (a1)+,d0
  524.     lsl.w    #5,d0
  525.     move.w    d0,NEXT_LINE*%A(a2)
  526.     .endm
  527.     rts
  528.  
  529. *    üáüáüáüáüíüíüíüí_üíüíüíüíüáüáüáüá
  530. put_8x16_4:
  531.     move.w    #%11110000_00001111,CRTC_R23
  532.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  533.     moveq.l    #0,d0
  534.     move.b    (a1)+,d0
  535.     lsl.w    #4,d0
  536.     move.w    d0,NEXT_LINE*%A(a2)
  537.     .endm
  538.     rts
  539.  
  540. *    üáüáüáüáüáüíüíüí_üíüíüíüíüíüáüáüá
  541. put_8x16_5:
  542.     move.w    #%11111000_00000111,CRTC_R23
  543.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  544.     moveq.l    #0,d0
  545.     move.b    (a1)+,d0
  546.     lsl.w    #3,d0
  547.     move.w    d0,NEXT_LINE*%A(a2)
  548.     .endm
  549.     rts
  550.  
  551. *    üáüáüáüáüáüáüíüí_üíüíüíüíüíüíüáüá
  552. put_8x16_6:
  553.     move.w    #%11111100_00000011,CRTC_R23
  554.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  555.     moveq.l    #0,d0
  556.     move.b    (a1)+,d0
  557.     lsl.w    #2,d0
  558.     move.w    d0,NEXT_LINE*%A(a2)
  559.     .endm
  560.     rts
  561.  
  562. *    üáüáüáüáüáüáüáüí_üíüíüíüíüíüíüíüá
  563. put_8x16_7:
  564.     move.w    #%11111110_00000001,CRTC_R23
  565.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  566.     moveq.l    #0,d0
  567.     move.b    (a1)+,d0
  568.     add.w    d0,d0
  569.     move.w    d0,NEXT_LINE*%A(a2)
  570.     .endm
  571.     rts
  572.  
  573. *    üáüáüáüáüáüáüáüá_üíüíüíüíüíüíüíüí
  574. put_8x16_8:
  575.     move.w    #%11111111_00000000,CRTC_R23
  576.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  577.     moveq.l    #0,d0
  578.     move.b    (a1)+,d0
  579.     move.w    d0,NEXT_LINE*%A(a2)
  580.     .endm
  581.     rts
  582.  
  583. *    üáüáüáüáüáüáüáüá_üáüíüíüíüíüíüíüí_üíüáüáüáüáüáüáüá
  584. put_8x16_9:
  585.     lea.l    CRTC_R23,a0
  586.     move.w    #%11111111_10000000,d2
  587.     move.w    #%01111111_11111111,d3
  588.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  589.     moveq.l    #0,d0
  590.     move.b    (a1)+,d0
  591.     ror.w    d0
  592.     move.w    d2,(a0)
  593.     move.w    d0,NEXT_LINE*%A(a2)
  594.     move.w    d3,(a0)
  595.     move.w    d0,NEXT_LINE*%A+2(a2)
  596.     .endm
  597.     rts
  598.  
  599. *    üáüáüáüáüáüáüáüá_üáüáüíüíüíüíüíüí_üíüíüáüáüáüáüáüá
  600. put_8x16_10:
  601.     lea.l    CRTC_R23,a0
  602.     move.w    #%11111111_11000000,d2
  603.     move.w    #%00111111_11111111,d3
  604.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  605.     moveq.l    #0,d0
  606.     move.b    (a1)+,d0
  607.     ror.w    #2,d0
  608.     move.w    d2,(a0)
  609.     move.w    d0,NEXT_LINE*%A(a2)
  610.     move.w    d3,(a0)
  611.     move.w    d0,NEXT_LINE*%A+2(a2)
  612.     .endm
  613.     rts
  614.  
  615. *    üáüáüáüáüáüáüáüá_üáüáüáüíüíüíüíüí_üíüíüíüáüáüáüáüá
  616. put_8x16_11:
  617.     lea.l    CRTC_R23,a0
  618.     move.w    #%11111111_11100000,d2
  619.     move.w    #%00011111_11111111,d3
  620.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  621.     moveq.l    #0,d0
  622.     move.b    (a1)+,d0
  623.     ror.w    #3,d0
  624.     move.w    d2,(a0)
  625.     move.w    d0,NEXT_LINE*%A(a2)
  626.     move.w    d3,(a0)
  627.     move.w    d0,NEXT_LINE*%A+2(a2)
  628.     .endm
  629.     rts
  630.  
  631. *    üáüáüáüáüáüáüáüá_üáüáüáüáüíüíüíüí_üíüíüíüíüáüáüáüá
  632. put_8x16_12:
  633.     lea.l    CRTC_R23,a0
  634.     move.w    #%11111111_11110000,d2
  635.     move.w    #%00001111_11111111,d3
  636.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  637.     moveq.l    #0,d0
  638.     move.b    (a1)+,d0
  639.     ror.w    #4,d0
  640.     move.w    d2,(a0)
  641.     move.w    d0,NEXT_LINE*%A(a2)
  642.     move.w    d3,(a0)
  643.     move.w    d0,NEXT_LINE*%A+2(a2)
  644.     .endm
  645.     rts
  646.  
  647. *    üáüáüáüáüáüáüáüá_üáüáüáüáüáüíüíüí_üíüíüíüíüíüáüáüá
  648. put_8x16_13:
  649.     lea.l    CRTC_R23,a0
  650.     move.w    #%11111111_11111000,d2
  651.     move.w    #%00000111_11111111,d3
  652.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  653.     moveq.l    #0,d0
  654.     move.b    (a1)+,d0
  655.     ror.w    #5,d0
  656.     move.w    d2,(a0)
  657.     move.w    d0,NEXT_LINE*%A(a2)
  658.     move.w    d3,(a0)
  659.     move.w    d0,NEXT_LINE*%A+2(a2)
  660.     .endm
  661.     rts
  662.  
  663. *    üáüáüáüáüáüáüáüá_üáüáüáüáüáüáüíüí_üíüíüíüíüíüíüáüá
  664. put_8x16_14:
  665.     lea.l    CRTC_R23,a0
  666.     move.w    #%11111111_11111100,d2
  667.     move.w    #%00000011_11111111,d3
  668.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  669.     moveq.l    #0,d0
  670.     move.b    (a1)+,d0
  671.     ror.w    #6,d0
  672.     move.w    d2,(a0)
  673.     move.w    d0,NEXT_LINE*%A(a2)
  674.     move.w    d3,(a0)
  675.     move.w    d0,NEXT_LINE*%A+2(a2)
  676.     .endm
  677.     rts
  678.  
  679. *    üáüáüáüáüáüáüáüá_üáüáüáüáüáüáüáüí_üíüíüíüíüíüíüíüá
  680. put_8x16_15:
  681.     lea.l    CRTC_R23,a0
  682.     move.w    #%11111111_11111110,d2
  683.     move.w    #%00000001_11111111,d3
  684.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  685.     moveq.l    #0,d0
  686.     move.b    (a1)+,d0
  687.     ror.w    #7,d0
  688.     move.w    d2,(a0)
  689.     move.w    d0,NEXT_LINE*%A(a2)
  690.     move.w    d3,(a0)
  691.     move.w    d0,NEXT_LINE*%A+2(a2)
  692.     .endm
  693.     rts
  694.  
  695.  
  696. ****************************************************************
  697. put_16x16_jt:
  698. q    =    put_16x16_jt
  699.     .dc.w    put_16x16_0-q
  700.     .dc.w    put_16x16_1-q
  701.     .dc.w    put_16x16_2-q
  702.     .dc.w    put_16x16_3-q
  703.     .dc.w    put_16x16_4-q
  704.     .dc.w    put_16x16_5-q
  705.     .dc.w    put_16x16_6-q
  706.     .dc.w    put_16x16_7-q
  707.     .dc.w    put_16x16_8-q
  708.     .dc.w    put_16x16_9-q
  709.     .dc.w    put_16x16_10-q
  710.     .dc.w    put_16x16_11-q
  711.     .dc.w    put_16x16_12-q
  712.     .dc.w    put_16x16_13-q
  713.     .dc.w    put_16x16_14-q
  714.     .dc.w    put_16x16_15-q
  715.  
  716.  
  717. put_16x16_0:
  718. *    üíüíüíüíüíüíüíüí_üíüíüíüíüíüíüíüí
  719.     move.w    #%00000000_00000000,CRTC_R23
  720.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15    * HAS.X é╠ègÆúï^Äùû╜ù▀
  721.     move.w    (a1)+,NEXT_LINE*%A(a2)
  722.     .endm
  723.     rts
  724.  
  725. put_16x16_1:
  726. *    üáüíüíüíüíüíüíüí_üíüíüíüíüíüíüíüí_üíüáüáüáüáüáüáüá
  727.     lea.l    CRTC_R23,a0
  728.     move.w    #%10000000_00000000,d2
  729.     move.w    #%01111111_11111111,d3
  730.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  731.     move.w    (a1)+,d0
  732.     ror.w    d0
  733.     move.w    d2,(a0)
  734.     move.w    d0,NEXT_LINE*%A(a2)
  735.     move.w    d3,(a0)
  736.     move.w    d0,NEXT_LINE*%A+2(a2)
  737.     .endm
  738.     rts
  739.  
  740. put_16x16_2:
  741. *    üáüáüíüíüíüíüíüí_üíüíüíüíüíüíüíüí_üíüíüáüáüáüáüáüá
  742.     lea.l    CRTC_R23,a0
  743.     move.w    #%11000000_00000000,d2
  744.     move.w    #%00111111_11111111,d3
  745.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  746.     move.w    (a1)+,d0
  747.     ror.w    #2,d0
  748.     move.w    d2,(a0)
  749.     move.w    d0,NEXT_LINE*%A(a2)
  750.     move.w    d3,(a0)
  751.     move.w    d0,NEXT_LINE*%A+2(a2)
  752.     .endm
  753.     rts
  754.  
  755. put_16x16_3: *    üáüáüáüíüíüíüíüí_üíüíüíüíüíüíüíüí_üíüíüíüáüáüáüáüá
  756.     lea.l    CRTC_R23,a0
  757.     move.w    #%11100000_00000000,d2
  758.     move.w    #%00011111_11111111,d3
  759.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  760.     move.w    (a1)+,d0
  761.     ror.w    #3,d0
  762.     move.w    d2,(a0)
  763.     move.w    d0,NEXT_LINE*%A(a2)
  764.     move.w    d3,(a0)
  765.     move.w    d0,NEXT_LINE*%A+2(a2)
  766.     .endm
  767.     rts
  768.  
  769. put_16x16_4:
  770. *    üáüáüáüáüíüíüíüí_üíüíüíüíüíüíüíüí_üíüíüíüíüáüáüáüá
  771.     lea.l    CRTC_R23,a0
  772.     move.w    #%11110000_00000000,d2
  773.     move.w    #%00001111_11111111,d3
  774.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  775.     move.w    (a1)+,d0
  776.     ror.w    #4,d0
  777.     move.w    d2,(a0)
  778.     move.w    d0,NEXT_LINE*%A(a2)
  779.     move.w    d3,(a0)
  780.     move.w    d0,NEXT_LINE*%A+2(a2)
  781.     .endm
  782.     rts
  783.  
  784. put_16x16_5:
  785. *    üáüáüáüáüáüíüíüí_üíüíüíüíüíüíüíüí_üíüíüíüíüíüáüáüá
  786.     lea.l    CRTC_R23,a0
  787.     move.w    #%11111000_00000000,d2
  788.     move.w    #%00000111_11111111,d3
  789.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  790.     move.w    (a1)+,d0
  791.     ror.w    #5,d0
  792.     move.w    d2,(a0)
  793.     move.w    d0,NEXT_LINE*%A(a2)
  794.     move.w    d3,(a0)
  795.     move.w    d0,NEXT_LINE*%A+2(a2)
  796.     .endm
  797.     rts
  798.  
  799. put_16x16_6:
  800. *    üáüáüáüáüáüáüíüí_üíüíüíüíüíüíüíüí_üíüíüíüíüíüíüáüá
  801.     lea.l    CRTC_R23,a0
  802.     move.w    #%11111100_00000000,d2
  803.     move.w    #%00000011_11111111,d3
  804.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  805.     move.w    (a1)+,d0
  806.     ror.w    #6,d0
  807.     move.w    d2,(a0)
  808.     move.w    d0,NEXT_LINE*%A(a2)
  809.     move.w    d3,(a0)
  810.     move.w    d0,NEXT_LINE*%A+2(a2)
  811.     .endm
  812.     rts
  813.  
  814. put_16x16_7:
  815. *    üáüáüáüáüáüáüáüí_üíüíüíüíüíüíüíüí_üíüíüíüíüíüíüíüá
  816.     lea.l    CRTC_R23,a0
  817.     move.w    #%11111110_00000000,d2
  818.     move.w    #%00000001_11111111,d3
  819.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  820.     move.w    (a1)+,d0
  821.     ror.w    #7,d0
  822.     move.w    d2,(a0)
  823.     move.w    d0,NEXT_LINE*%A(a2)
  824.     move.w    d3,(a0)
  825.     move.w    d0,NEXT_LINE*%A+2(a2)
  826.     .endm
  827.     rts
  828.  
  829. put_16x16_8:
  830. *    üáüáüáüáüáüáüáüá_üíüíüíüíüíüíüíüí_üíüíüíüíüíüíüíüí
  831.     move.w    #0,CRTC_R23
  832.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  833.     move.b    (a1)+,NEXT_LINE*%A+1(a2)
  834.     move.b    (a1)+,NEXT_LINE*%A+2(a2)
  835.     .endm
  836.     rts
  837.  
  838. put_16x16_9:
  839. *    üáüáüáüáüáüáüáüá_üáüíüíüíüíüíüíüí_üíüíüíüíüíüíüíüí_üíüáüáüáüáüáüáüá
  840.     lea.l    CRTC_R23,a0
  841.     move.w    #%11111111_10000000,d2
  842.     move.w    #%00000000_01111111,d3
  843.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  844.     move.w    (a1)+,d0
  845.     rol.w    #16-9,d0
  846.     move.w    d2,(a0)
  847.     move.w    d0,NEXT_LINE*%A(a2)
  848.     move.w    d3,(a0)
  849.     move.w    d0,NEXT_LINE*%A+2(a2)
  850.     .endm
  851.     rts
  852.  
  853. put_16x16_10:
  854. *    üáüáüáüáüáüáüáüá_üáüáüíüíüíüíüíüí_üíüíüíüíüíüíüíüí_üíüíüáüáüáüáüáüá
  855.     lea.l    CRTC_R23,a0
  856.     move.w    #%11111111_11000000,d2
  857.     move.w    #%00000000_00111111,d3
  858.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  859.     move.w    (a1)+,d0
  860.     rol.w    #16-10,d0
  861.     move.w    d2,(a0)
  862.     move.w    d0,NEXT_LINE*%A(a2)
  863.     move.w    d3,(a0)
  864.     move.w    d0,NEXT_LINE*%A+2(a2)
  865.     .endm
  866.     rts
  867.  
  868. put_16x16_11:
  869. *    üáüáüáüáüáüáüáüá_üáüáüáüíüíüíüíüí_üíüíüíüíüíüíüíüí_üíüíüíüáüáüáüáüá
  870.     lea.l    CRTC_R23,a0
  871.     move.w    #%11111111_11100000,d2
  872.     move.w    #%00000000_00011111,d3
  873.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  874.     move.w    (a1)+,d0
  875.     rol.w    #16-11,d0
  876.     move.w    d2,(a0)
  877.     move.w    d0,NEXT_LINE*%A(a2)
  878.     move.w    d3,(a0)
  879.     move.w    d0,NEXT_LINE*%A+2(a2)
  880.     .endm
  881.     rts
  882.  
  883. put_16x16_12:
  884. *    üáüáüáüáüáüáüáüá_üáüáüáüáüíüíüíüí_üíüíüíüíüíüíüíüí_üíüíüíüíüáüáüáüá
  885.     lea.l    CRTC_R23,a0
  886.     move.w    #%11111111_11110000,d2
  887.     move.w    #%00000000_00001111,d3
  888.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  889.     move.w    (a1)+,d0
  890.     rol.w    #16-12,d0
  891.     move.w    d2,(a0)
  892.     move.w    d0,NEXT_LINE*%A(a2)
  893.     move.w    d3,(a0)
  894.     move.w    d0,NEXT_LINE*%A+2(a2)
  895.     .endm
  896.     rts
  897.  
  898. put_16x16_13:
  899. *    üáüáüáüáüáüáüáüá_üáüáüáüáüáüíüíüí_üíüíüíüíüíüíüíüí_üíüíüíüíüíüáüáüá
  900.     lea.l    CRTC_R23,a0
  901.     move.w    #%11111111_11111000,d2
  902.     move.w    #%00000000_00000111,d3
  903.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  904.     move.w    (a1)+,d0
  905.     rol.w    #16-13,d0
  906.     move.w    d2,(a0)
  907.     move.w    d0,NEXT_LINE*%A(a2)
  908.     move.w    d3,(a0)
  909.     move.w    d0,NEXT_LINE*%A+2(a2)
  910.     .endm
  911.     rts
  912.  
  913. put_16x16_14:
  914. *    üáüáüáüáüáüáüáüá_üáüáüáüáüáüáüíüí_üíüíüíüíüíüíüíüí_üíüíüíüíüíüíüáüá
  915.     lea.l    CRTC_R23,a0
  916.     move.w    #%11111111_11111100,d2
  917.     move.w    #%00000000_00000011,d3
  918.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  919.     move.w    (a1)+,d0
  920.     rol.w    #16-14,d0
  921.     move.w    d2,(a0)
  922.     move.w    d0,NEXT_LINE*%A(a2)
  923.     move.w    d3,(a0)
  924.     move.w    d0,NEXT_LINE*%A+2(a2)
  925.     .endm
  926.     rts
  927.  
  928. put_16x16_15:
  929. *    üáüáüáüáüáüáüáüá_üáüáüáüáüáüáüáüí_üíüíüíüíüíüíüíüí_üíüíüíüíüíüíüíüá
  930.     lea.l    CRTC_R23,a0
  931.     move.w    #%11111111_11111110,d2
  932.     move.w    #%00000000_00000001,d3
  933.     .irp    %A,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  934.     move.w    (a1)+,d0
  935.     rol.w    #16-15,d0
  936.     move.w    d2,(a0)
  937.     move.w    d0,NEXT_LINE*%A(a2)
  938.     move.w    d3,(a0)
  939.     move.w    d0,NEXT_LINE*%A+2(a2)
  940.     .endm
  941.     rts
  942.  
  943.